Как правильно сделать rule для UrlManager в Yii2?
Создайте свой класс правил который будет выполнять необходимую Вам логику и используйте его
Теперь первый параметр в URL считаем всегда городом
И чем это плохо? Я так понимаю именно это Вам и нужно. Если есть урлы типа page/somepage/, просто укажите их правила раньше правил города. Получится, что если не сработали все правила, то первый параметр это url. UrlManager просто идет по массиву правил и когда находит  подходящий далее не идет, так что изменяя порядок можно вполне добиться нужного результата. Или более сложный вариант предложил Максим Федоров