You can write your own route for this and the corresponding restrictions for different parts:
routes.MapRoute( "myroute", "anything/{x}-{id}-{y}", new { controller = "SomeController", action = "SomeAction" }, new { x = "[az]+", y = "[az]+", id = @"\d+" } );
source share