title: Can I have two routes that are complimentary to each other?
body: <p>Can I have these two routes defined? I tried this example but got a 404.</p>
  
  <pre><code>routes.MapRoute(
      name: "Default",
      url: "{controller}/{action}/{id}",
      defaults: new
      {
          controller = "Home",
          action = "Index",
          id = UrlParameter.Optional
      }
  );
  
  routes.MapRoute(
      name: "ActionFirst",
      url: "{action}/{controller}/{id}",
      defaults: new { controller = "Home", 
          action = "Index", id = UrlParameter.Optional }
  );
  </code></pre>
  
  <p>And the following controllers and actions:</p>
  
  <pre><code>public class HomeController : Controller
  {
      public ActionResult Index()
      {
          return Content("Hello, World!");
      }
  
      public ActionResult Foo()
      {
          return Content("I am the Foo action on the Home controller");
      }
  }
  </code></pre>
  
  <p>The following Urls that conform to the <em>Default</em> route work:</p>
  
  <pre><code>http://localhost:xxxx/
  http://localhost:xxxx/Home
  http://localhost:xxxx/Home/Foo
  </code></pre>
  
  <p>But the ones that conform to the <em>ActionFirst</em> route name, as listed below, do not:</p>
  
  <pre><code>http://localhost:xxxx/Foo
  http://localhost:xxxx/Foo/Home
  </code></pre>
  
  <p>I was hoping that the ASP.NET Routing engine would try the Url against all routes if the route failed against one of them.</p>
  
  <p>So if the url failed to match the first route name, it would try matching it against the second. But that doesn't appear to be the case.</p>
  
  <p>Of course, if I remove the <em>Default</em> route and have just the <em>ActionFirst</em> route, then the second lot of Urls do work.</p>