I'm almost done adding compatibility to WebAPI for AttributeRouting. I ran into a snag last night and was hoping it'd be an easy fix:
Attribute Routing overrides GetVirtualPath and in the MVC project, sets the VirtualPath. That line was failing in WebApi because its setter isn't public. I think I might be able to simply new up a concrete HttpVirtualPathData but I haven't tried.
If I can't work around it, I will submit a pull request (after testing it).