Вот решение, которое решает мою данную проблему - надеюсь, оно решит кого-то другого.
Как упоминалось в моем комментарии к Роберту Харви, все, что мне на самом деле нужно, - это другой маршрут, в котором не используются первые два илитри компонента, такие как контроллер, действие и идентификатор, но вместо этого принимают эти значения позже - если вы также повесите это статическое значение на маршруте, это будет гораздо проще сделать.
Итак, вотURL-адрес, по которому я решил упростить маршрут:
/{subjectarea}/{subject}/related/{tightlyrelatedsubject}/{tightlyrelatedsubjectvariables}/{tightlyrelatedsubjectaction}
Маршрут, который удовлетворяет этому URL, выглядит следующим образом:
routes.MapRoute(
"RelatedSubjects",
"{parentcontroller}/{parentsubject}/related/{controller}/{id}/{action}",
new { controller = "shoes", action = "view", id = "all" }
);
В последующем действии контроллера я могу запросить значения параметровдля parentcontroller и parentubject, поэтому я могу отфильтровать связанный элемент, чтобы он был специфичным для данного родительского объекта - проблема решена!
Этот маршрут должен быть выше тех, которые имеют дело только с первыми двумя значениями, в противном случае выриску того, что другая карта маршрутов перехватит запрос.
Я мог бы сделать это полностью без / related / static portion поскольку маршрут может легко совпадать только по количеству значений, и, на самом деле, я действительно могу это сделать - однако я считаю, что для последующего администрирования лучше использовать статический элемент для подтверждения использования маршрута.
Надеюсь, это кому-нибудь поможет!