Web Api wielokrotne uzyskują ten sam routing podpisów

Buduję interfejs API, który ma wiele wywołań typu get / post, które mają takie same podpisy. Teraz wiem, że w przypadku wielu identycznych wywołań zazwyczaj masz 2 opcje: rozdziel na różne kontrolery lub użyj {akcji} na swoich trasach. Poszedłem metodą {action}, ponieważ najlepiej pasuje do większości moich kontrolerów. Jednak w jednym z moich kontrolerów wolałbym nie używać metody akcji.

Mam takie połączenie:

[HttpGet]
public Program Program(string venue, string eventId)
//api/{controller}/{venue}/{eventId}

Teraz potrzebuję nowego połączenia

[HttpGet]
public Program ProgramStartTime(string venue, string eventId)
//api/{controller}/{venue}/{eventId}

Wiem, że mogę dodać do tego nazwę akcji i zadzwonić np

api/{controller}/{action}/{venue}/{eventId}

Ale czuję, że przełamuje oczekiwane. Czy jest jakiś sposób, w jaki mógłbym coś takiego

api/Content/LAA/1/PST
api/Content/LAA/1?PST

Również jeśli muszę przejść na trasę akcji, obecnie mam już trasę, której używam dla innych kontrolerów, ale po prostu używa ona {id} jako jedynego parametru. Czy nowa trasa koliduje z tą? Czy jest lepszy sposób na ustawienie moich tras?

config.Routes.MapHttpRoute(
   name: "...",
   routeTemplate: "api/{controller}/{action}/{id}",
   defaults: new {id = RouteParameter.Optional}
);

config.Routes.MapHttpRoute(
   name: "...",
   routeTemplate: "api/{controller}/{action}/{venue}/{eventId}/{...}/{***}/{###}",
   defaults: new {### = RouteParameter.Optional}
);

config.Routes.MapHttpRoute(
   name: "...",
   routeTemplate: "api/{controller}/{action}/{venue}/{eventId}/{...}",
   defaults: new {... = RouteParameter.Optional}
);

config.Routes.MapHttpRoute(
   name: "...",
   routeTemplate: "api/{controller}/{action}/{venue}",
   defaults: new {venue = RouteParameter.Optional}
);

Spodziewam się co najmniej jednej metody, która miałaby do 5 parametrów

questionAnswers(1)

yourAnswerToTheQuestion