title: Default API Route not working even without ODATA
body: <p>I am running into a problem when I call /api/something/67545217-0fed-4058-9cfc-f6363412f5a2. It calls the get all. The other Get's work, but I think it is because they use the {action} in the url. And I am using the [ActionName] decorator. </p>
  
  <p>Here is my routing:</p>
  
  <pre><code>public static void Register(HttpConfiguration config)
      {
          // enable CORS
          config.EnableCors();
          config.Services.Replace(typeof(IHttpControllerSelector), new ControllerSelector(config));
  
          // enable OData Queries
          // http://www.asp.net/web-api/overview/odata-support-in-aspnet-web-api/supporting-odata-query-options
          config.EnableQuerySupport();
  
          // http://www.asp.net/web-api/overview/odata-support-in-aspnet-web-api/odata-actions
          var builder = new ODataConventionModelBuilder();
          builder.EntitySet&lt;Survey&gt;("Survey");
  
          config.Routes.MapODataRoute("odata", "odata", builder.GetEdmModel());
  
          // Web API routes
          config.MapHttpAttributeRoutes();
          config.Routes.MapHttpRoute(
              "DefaultApi", 
              "api/{controller}/{actionuniqueid}", 
              new 
              { 
                  actionuniqueid =
                      @"^[A-Fa-f0-9]{32}$|({|\()?[A-Fa-f0-9]{8}-([A-Fa-f0-9]{4}-){3}[A-Fa-f0-9]{12}(}|\))?$|^({)?[0xA-Fa-f0-9]{3,10}(, {0,1}[0xA-Fa-f0-9]{3,6}){2}, {0,1}({)([0xA-Fa-f0-9]{3,4}, {0,1}){7}[0xA-Fa-f0-9]{3,4}(}})$"
              });
  
          // Match All Regular Get Calls
          config.Routes.MapHttpRoute("DefaultController", "api/{controller}");
  
          config.Routes.MapHttpRoute(
              "DefaultApiActionId",
              "api/{controller}/{action}/{actionuniqueid}",
              null,
              new
              {
                  action = @"^[a-zA-Z]+([\s][a-zA-Z]+)*$",
                  actionuniqueid =
                      @"^[A-Fa-f0-9]{32}$|({|\()?[A-Fa-f0-9]{8}-([A-Fa-f0-9]{4}-){3}[A-Fa-f0-9]{12}(}|\))?$|^({)?[0xA-Fa-f0-9]{3,10}(, {0,1}[0xA-Fa-f0-9]{3,6}){2}, {0,1}({)([0xA-Fa-f0-9]{3,4}, {0,1}){7}[0xA-Fa-f0-9]{3,4}(}})$"
              });
          config.Routes.MapHttpRoute(
              "DefaultApiTwoActionId",
              "api/{controller}/{action}/{actionuniqueid}/{actionsecondaryid}",
              null,
              new
              {
                  action = @"^[a-zA-Z]+([\s][a-zA-Z]+)*$",
                  actionuniqueid =
                      @"^[A-Fa-f0-9]{32}$|({|\()?[A-Fa-f0-9]{8}-([A-Fa-f0-9]{4}-){3}[A-Fa-f0-9]{12}(}|\))?$|^({)?[0xA-Fa-f0-9]{3,10}(, {0,1}[0xA-Fa-f0-9]{3,6}){2}, {0,1}({)([0xA-Fa-f0-9]{3,4}, {0,1}){7}[0xA-Fa-f0-9]{3,4}(}})$",
                  actionsecondaryid =
                      @"^[A-Fa-f0-9]{32}$|({|\()?[A-Fa-f0-9]{8}-([A-Fa-f0-9]{4}-){3}[A-Fa-f0-9]{12}(}|\))?$|^({)?[0xA-Fa-f0-9]{3,10}(, {0,1}[0xA-Fa-f0-9]{3,6}){2}, {0,1}({)([0xA-Fa-f0-9]{3,4}, {0,1}){7}[0xA-Fa-f0-9]{3,4}(}})$"
              });
      }
  </code></pre>
  
  <p>Here are all my gets...when I call the controller, with only the ID...the correct path is not being called. Is it because it has the same setup as by type?</p>
  
  <pre><code>public class TestController : ApiController
  {
      [Queryable]
      [ResponseType(typeof(Test))]
      public IQueryable&lt;Test&gt; Get(ODataQueryOptions opts)
      {
          IEnumerable&lt;Test&gt; test= (new Test()).PullList&lt;Test&gt;(LoadDepth.Self, "ByAll");
          IQueryable results = test.AsQueryable();
          return opts.ApplyTo(results) as IQueryable&lt;Test&gt;;
      }
      [HttpGet]
      [Queryable]
      [ActionName("ById")]
      [ResponseType(typeof(Test))]
  
      public IQueryable&lt;Test&gt; Get(ODataQueryOptions opts, Guid actionuniqueid)
      {
          IEnumerable&lt;Test&gt; test = (new Test()).PullList&lt;Survey&gt;(
                  LoadDepth.Everything, 
                  "ById",
                  actionuniqueid);
          IQueryable results = test.AsQueryable();
          return opts.ApplyTo(results) as IQueryable&lt;Test&gt;;
      }
  
      [HttpGet]
      [ActionName("ByType")]
      [ResponseType(typeof(Test))]
      public IQueryable&lt;Test&gt; GetByType(ODataQueryOptions opts, Guid actionuniqueid)
      {
          IEnumerable&lt;Test&gt; survey = (new Test()).PullList&lt;Survey&gt;(
              LoadDepth.Everything,
              "ByType",
              actionuniqueid);
          IQueryable results = test.AsQueryable();
             return opts.ApplyTo(results) as IQueryable&lt;Test&gt;;
      }
  </code></pre>