パラメーター トランスフォーマーを使用してトークンの置換をカスタマイズする
https://docs.microsoft.com/ja-jp/aspnet/core/mvc/controllers/routing?view=aspnetcore-2.2#use-a-parameter-transformer-to-customize-token-replacement

上記のチュートリアルに従って実装を行いました。

public class SubscriptionManagementController : Controller
{
    [HttpGet("[controller]/[action]")] // Matches '/subscription-management/list-all'
    public IActionResult ListAll() { ... }
}

Startup.cs

public void ConfigureServices(IServiceCollection services)
{
    services.AddMvc(options =>
    {
        options.Conventions.Add(new RouteTokenTransformerConvention(
                                    new SlugifyParameterTransformer()));
    });
}

public class SlugifyParameterTransformer : IOutboundParameterTransformer
{
    public string TransformOutbound(object value)
    {
        if (value == null) { return null; }

        // Slugify value
        return Regex.Replace(value.ToString(), "([a-z])([A-Z])", "$1-$2").ToLower();
    }
}

こうすると、チュートリアルに記載されているように
/subscription-management/list-all でアクセスできるようになります。
ただし、従来の
/SubscriptionManagement/ListAll ではアクセスできなくなってしまいます。

/subscription-management/list-all
/SubscriptionManagement/ListAll
両方のURLでアクセス可能にすることは可能でしょうか。