title: Controller in separate assembly and routing
body: <p>In the same solution, there is a ASP.NET MVC4 application <code>Slick.App</code> and class library <code>Awesome.Mvc.Lib</code>. Awesome.Mvc.Lib contains one controller class.</p>
  
  <pre><code>public class ShinnyController : Controller
  {
      [HttpGet]
      public string Index()
      {
          return "Hello, from Awesome.Mvc.Lib";
      }
  }
  </code></pre>
  
  <p>If I just add the reference from Slick.App to Awesome.Mvc.Lib, run the application and point brower to <code>/shinny</code>, I will actually see the response "Hello, from Awesome.Mvc.Lib".</p>
  
  <p>This is something I don't expect at all. All the time I thought ASP.NET MVC respects the namespaces there the controllers placed in. So, the controllers from another namespaces are not exposed, at least before I didn't ask to.</p>
  
  <p>I tried to change the default route registration, to use namespaces parameter.</p>
  
  <pre><code>    routes.MapRoute(
          name: "Default",
          url: "{controller}/{action}/{id}",
          defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional },
          namespaces: new [] { "Slick.App.Controllers" }
      );
  </code></pre>
  
  <p>Still, the ShinnyController route still match for '/shinny'. </p>
  
  <p>I have a concerns this is right default behaviour. My question is, how to explicitly say which controllers are exposed and prevent default route to match controllers in separate class library?</p>