public static Route MapLocalizedRoute(this RouteCollection routes, string name, string url, object defaults, object constraints, string[] namespaces)
        {
            if (routes == null)
            {
                throw new ArgumentNullException("routes");
            }
            if (url == null)
            {
                throw new ArgumentNullException("url");
            }

            var urlservice = DependencyResolver.Current.GetService <BL.Interface.ISlugService>();

            var route = new SeoRoute(url, new MvcRouteHandler(), urlservice)
            {
                Defaults    = new RouteValueDictionary(defaults),
                Constraints = new RouteValueDictionary(constraints),
                DataTokens  = new RouteValueDictionary()
            };

            if ((namespaces != null) && (namespaces.Length > 0))
            {
                route.DataTokens["Namespaces"] = namespaces;
            }

            routes.Add(name, route);

            return(route);
        }
        public static void MapSeoRoute(this RouteCollection routes,
            string name,
            string url,
            IEnumerable<string> routeParams,
            object defaults,
            object constraints,
            string[] namespaces)
        {
            if (routes == null)
            {
                throw new ArgumentNullException("routes");
            }

            if (url == null)
            {
                throw new ArgumentNullException("url");
            }

            if (routeParams == null)
            {
                throw new ArgumentNullException("routeParams");
            }

            if (routeParams.Count() == 0)
            {
                throw new ArgumentException("Must have at least one route param", "routeParams");
            }

            var route = new SeoRoute(url, routeParams, new RouteValueDictionary(defaults), new RouteValueDictionary(constraints), new MvcRouteHandler());

            if (namespaces != null && namespaces.Length > 0)
            {
                route.DataTokens = new RouteValueDictionary();
                route.DataTokens["Namespaces"] = namespaces;
            }

            if (string.IsNullOrEmpty(name))
            {
                routes.Add(route);
            }
            else
            {
                routes.Add(name, route);
            }
        }