title: WebApi 2.2 basecontroller with endpoints that can be overridden keeping routing
body: <p>I am having some trouble with webapi 2.2 routing. I have installed v5.2 into my project and have modified my config to use a Custom DirectRouteProvider</p>
  
  <pre><code>public class CustomDirectRouteProvider : DefaultDirectRouteProvider
          {
              protected override IReadOnlyList&lt;IDirectRouteFactory&gt;
              GetActionRouteFactories(HttpActionDescriptor actionDescriptor)
              {
                  return actionDescriptor.GetCustomAttributes&lt;IDirectRouteFactory&gt;
                  (inherit: true);
              }
          }
  </code></pre>
  
  <p>Now I have setup a base controller with methods that I want to allow to be overridden for example</p>
  
  <pre><code>    [HttpGet]
      [Route("")]
      [EnableQuery]
      public async virtual Task&lt;IHttpActionResult&gt; Get()
      {
          var data = await DomainService.GetQueryable();
          if (data != null)
          {
             return Ok(data);
          }
          return NotFound();
  
      }
  </code></pre>
  
  <p>If I run the project and call an endpoint like <code>http://localhost:3000/somecontroller</code> the above Get() method is called.
  If within somecontroller I try</p>
  
  <pre><code>    [HttpGet]
      [EnableQuery]
      [Route("")]
      public async override Task&lt;IHttpActionResult&gt; Get()
      {
  
          var data = await _skillRepository.ParentSkillsAsync();
          if (data != null)
          {
              return Ok(data);
          }
          return NotFound();
      }
  </code></pre>
  
  <p>I get an error of </p>
  
  <blockquote>
    <p>Multiple actions were found that match the request</p>
  </blockquote>
  
  <p>Is there anyway to do what I am trying here? is frustrating trying to get this to work.</p>
  
  <p>Thank you </p>