Прежде всего, вы должны использовать MapRoute для MapPageRoute, потому что MapPageRoute есть (от msdn):
Предоставляет способ • определять маршруты для Web Forms приложений
Но если вы измените свой код так:
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute("AccountRoute", "{Action}", new {controller = "Account"});
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
Каждый запрос без параметров отправляется в AccountRoute, даже если он должен обрабатываться другим контроллером.
Единственный способ это будет работать, чтобы создать подобный код:
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
//ALL routes you need
routes.MapRoute("LoginRoute", "{Action}", new { controller = "Account", action = "Login" });
routes.MapRoute("RegisterRoute", "{Action}", new { controller = "Account", action = "Register" });
//Default route in the end
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);