¿Qué tipo de ruta necesitaría para proporcionar URL de vanidad?

Me gustaría proporcionar a mis usuarios un URL de vanidad, algo como:

www.foo.com/sergio

¿Qué tipo de ruta necesitaría crear?

Imagine que tengo el siguiente controlador y acción, ¿cómo puedo asignar una URL de vanidad a ese controlador?

public ActionResult Profile(string username)
{
    var model = LoadProfile(username);
    return View(model);
}

Esto es lo que he probado y lo que pasa:

Opción A:

Cada url está atrapado en esta ruta, lo que significa que cada URL que escribo me dirige hacia el controlador de la cuenta, en lugar de solofoo.com/[USERNAME]. No es bueno.

public static void RegisterRoutes(RouteCollection routes)
{
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

    routes.MapRoute(
        "Profile",
        "{username}",
        new { controller = "Account", action = "Profile", username = UrlParameter.Optional }
    );

    routes.MapRoute(
        "Default", // Route name
        "{controller}/{action}/{id}", // URL with parameters
        new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
    );
}
Opción B:

Las rutas predeterminadas funcionan bien, pero al intentar visitar un perfilfoo.com/[USERNAME] Recibo un error HTTP 404.

public static void RegisterRoutes(RouteCollection routes)
{
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

    routes.MapRoute(
        "Default", // Route name
        "{controller}/{action}/{id}", // URL with parameters
        new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
    );

    routes.MapRoute(
        "DentistProfile",
        "{username}",
        new { controller = "Account", action = "Profile", username = UrlParameter.Optional }
    );
}

Respuestas a la pregunta(2)

Su respuesta a la pregunta