Проблема С Роутерами

Доброго времени суток.

Вот наткнулся на небольшую проблему с маршрутами, а именно:

Имеем роутеры в конфиге




'<language:(ru|uk|en)>/<module:\w+>/<controller:\w+>/<action:\w+>/*' => '<module>/<controller>/<action>',

'<language:(ru|uk|en)>/<module:\w+>/<controller:\w+>/<id:\d+>' => '<module>/<controller>/view',

'<language:(ru|uk|en)>/<module:\w+>/<controller:\w+>/*' => '<module>/<controller>',

'<language:(ru|uk|en)>/<module:\w+>/*' => '<module>',

'<language:(ru|uk|en)>/' => 'site/index',

'<language:(ru|uk|en)>/<action:(contact|login|logout)>/*' => 'site/<action>',

'<language:(ru|uk|en)>/<controller:\w+>/<id:\d+>' => '<controller>/view',

'<language:(ru|uk|en)>/<controller:\w+>/<action:\w+>/<id:\d+>' => '<controller>/<action>',

'<language:(ru|uk|en)>/<controller:\w+>/<action:\w+>/*' => '<controller>/<action>',



urlFormat равен path.

Так вот если построить урл вида http:://example.com/ru/site/test/param1/value1/param2/value2, то на выходе получается массив с параметрами




Array

(

    [language] => en

    [value1] => param2

    [value2] => 

    [param1] => 

)



то есть, как я понимаю, получается сработало первое правило




'<language:(ru|uk|en)>/<module:\w+>/<controller:\w+>/<action:\w+>/*' => '<module>/<controller>/<action>'



что привело к неправильному построению массива ключ = значения.

Вопрос состоит в том как, тогда правильно построить правила маршрутизации, чтобы можно было как и в приложении получить правильные параметры, так и в модуле.

При использовании маршрутов вида




'<language:(ru|uk|en)>/<module:(module_name1|module_name_2)/<controller:\w+>/<action:\w+>/*' => '<module>/<controller>/<action>'



все работает корректно. Но я не уверен что это правильный выход с данной ситуации.