Вы должны добавить маршрут продуктов после маршрута по умолчанию, в противном случае маршрут продуктов всегда будет соответствовать любому URL из шести сегментов или меньше.Это может создать новую проблему: маршрут по умолчанию будет соответствовать любому URL из трех сегментов или менее, если вы не добавите ограничение к токену контроллера со всеми именами контроллера, например, controller = @"home|account|departments"
.Библиотека MvcCodeRouting может автоматически регистрировать очень строгие маршруты (с использованием ограничений для контроллера и действий), затем вы также можете добавлять свои собственные маршруты, и вам не нужно беспокоиться о конфликтах.
routes.MapRoute("Default", "{controller}/{action}/{p0}",
new { controller = "Home", Action = "Index", p0 = "" },
new { controller = @"Home|Account" }, // Register controllers here
new[] { "MvcApplication1.Controllers" });
routes.MapRoute("Products", "{p0}/{p1}/{p2}/{p3}/{p4}/{p5}",
new { controller = "Departaments", Action = "Products", p0 = "", p1 = "", p2 = "", p3 = "", p4 = "", p5 = "" },
new[] { "MvcApplication1.Controllers" });