So basically, if {key}is an existing action that you want it to be handled by the default route instead of using the action Indexon the controller Ads?
To achieve this, you can list all the possible actions in a key constraint:
routes.MapRoute(
name: "AdsCategories",
url: "Ads/{key}",
defaults: new { controller = "Ads", action = "Index" },
constraints: new { key = @"^create|update|delete" },
namespaces: new string[] { "Vprok.Controllers" }
);
AdsCategories URL ads/create ads/update ads/delete. , ads/foobar .