Да, все решается в RouteConfig. localhost - придаток, о котором надо забыть. для первой задачи нужен рут c шаблоном просто ProductList -
routes.MapRoute(
"ProductList", // Route name
"ProductList", // URL with parameters
new { controller = "ProductList", action = "Index", id = UrlParametr.Optional } // Parameter defaults
);
Для второй задачки рут будет похитрее
routes.MapRoute(
"ProductListSpecial", // Route name
"ProductList/{Product}/{ProductId}", // URL with parameters
new { controller = "ProductList", action = "Index" } // Parameter defaults
);
Примерно так. Разбирайтесь дальше в общем.