Реализовал так.
Правила:
'rules' => [
'<controller:\w+>/<action:\w+>' => '<controller>/<action>',
'<dir1:[\w\-\_\d]+>' => 'page/index'
],
Все контроллеры, без исключения, наследуются от BaseController, он - от системного.
В BaseController есть метод выборки meta, которое во view уже будет использоваться для вставки в теги.
А в методе PageController->actionIndex() отображаются динамические страницы.
Так же никуда не девается правило об ошибках (и соответствующий метод):
'errorHandler' => [
'errorAction' => 'site/error',
],
UPDATE: все же ошибся немного, в правилах не правильно работает, изменил на:
'errorHandler' => [
'errorAction' => 'page/index',
],