Zend Problemas de enrutamiento

He leído todas las publicaciones sobre enrutamiento y documentación de Zend, pero aún no puedo resolver este problema.

Tengo una aplicación multilingüe con dos módulos: predeterminado y administrador. La selección de idioma funciona bien (en un controlador routeShutdown Plugin), pero tengo algunos problemas para configurar el enrutador:

Quiero que estas URL funcionen:

/
/controller
/controller/action
/action                  (default controller)
/controller/param        (default action)
/admin
/admin/admin-controller
/admin/admin-controller/action

y usando el selector de idioma sería:

/en
/en/controller
/en/controller/action
/en/action                  (default controller)
/en/controller/param        (default action)
/en/admin/admin-controller
/en/admin/admin-controller/action

Agregué esto a mi archivo bootstap (index.php):

$frontController = Zend_Controller_Front::getInstance();
$router = $frontController->getRouter();
$router->removeDefaultRoutes();
$router->addRoute('langmodcontrolleraction',

new Zend_Controller_Router_Route('/:lang/:module/:controller/:action',
    array('lang' => ':lang'))
);

$router->addRoute('langmodcontroller',
new Zend_Controller_Router_Route('/:lang/:module/:controller',
    array('lang' => ':lang',
        'action' => 'index'))
);

$router->addRoute('langmod',
new Zend_Controller_Router_Route('/:lang/:module',
    array('lang' => ':lang',
        'action' => 'index',
        'controller' => 'index'))
);

$router->addRoute('lang',
new Zend_Controller_Router_Route('/:lang',
    array('lang' => ':lang',
        'action' => 'index',
        'controller' => 'index',
        'module' => 'default'))
);

$frontController->setControllerDirectory(array(
'default'=>BASE_PATH.'app/modules/default/controllers',
'admin'=>BASE_PATH.'app/modules/admin/controllers'));    

Para verificar cómo el enrutador analiza la URL, agregué un var_dump al plugin routeShutdown:

Entrando a / en, Yo obtengo

array
'lang' => string 'en' (length=2)
'action' => string 'index' (length=5)
'controller' => string 'index' (length=5)
'module' => string 'default' (length=7)

que está bien. Pero cuando entro a / es / controller1 Yo obtengo

array
'lang' => string 'en' (length=2)
'module' => string 'controller1' (length=8)
'action' => string 'index' (length=5)
'controller' => string 'index' (length=5) 

Está configurando el módulo en "controlador1". ¿Cómo puedo decirle al enrutador que establezca el valor predeterminado para el módulo? ¿Y para una URL como / en / controller / param? (configuración de módulo y acción por defecto)

Respuestas a la pregunta(2)

Su respuesta a la pregunta