I resolved this by adding a Routes class in my module /w the following code:
public class Routes : IRouteProvider
{
public void GetRoutes(ICollection<RouteDescriptor> routes)
{
var routeDescriptors = GetRoutes();
foreach (var descriptor in routeDescriptors)
routes.Add(descriptor);
}
public IEnumerable<RouteDescriptor> GetRoutes()
{
return new[] {
new RouteDescriptor {
Name= "PostIdRoute",
Route = new Route(
"post/{id}/{*SeoFluff}",
new RouteValueDictionary{
{"area", "Contents"},
{"controller", "Item"},
{"action", "Display"}
},
new RouteValueDictionary(),
new RouteValueDictionary { {"area", "Contents"} },
new MvcRouteHandler()
)
}
};
}
}
Notice the "{*SeoFluff}" part. That wildcard is the key to handling an unknown number of slashes, if you don't include that, you'll need to add multiple RouteDescriptors.