Как он узнает {auto} отличается от {page} или {category}? Ответ никак, так как они идентичны поэтому всегда срабатывает auto.
Тебе нужно придумывать либо префикс Route::prefix('auto') (типа auto_{auto}), либо для каждого
писать паттерн правило именования(на переменные что формирует путь, ), либо внутри писать обработчик которые если не найдет auto по правилам перекидыват на page и тд).
Короче говоря, изучи
https://laravel.com/docs/5.4/routing , есть возможность расписать расписать свою логику работы роутера, но это все усложнит.
Я думаю твой вариант перейти на префиксы и все будет красиво и быстро работать.