Not sure (haven't tested myself) but I think that UrlResolver is capable of doing that.
var resolver = ServiceLocator.Current.Get<UrlResolver>(); IContent content = resolver.Route(new UrlBuilder("...."));
Thanks Valdis, that was indeed the way to do it!
How can I load up a MediaData object for a given URL?
I'm trying to do this the Application_BeginRequest event currently, but can't find a way of loading the MediaData instance for the requested URL.