Yes, you can use the router to map any arbitrary URL route to any module/action you want. The admin routes you want could be handled like this, with an 'afterMatch' route callback that modifies the returned parameter array:
// Admin Routes
// ===========================================
// 'afterMatch' callback to prepend 'admin_' to module name
// @return array of $params
$adminPrepend = function($params, $method, $uri) {
// Prepend 'admin_' to specified 'module' param from route
$params['module'] = 'admin_' + $params['module'];
return $params;
};
// Routes
$router->route('admin_module_item_action', '/admin/<:module>/<:item>/<:action>')
->defaults(array('format' => 'html'))
->afterMatch($adminPrepend);
$router->route('admin_module_item', '/admin/<:module>/<#item>')
->defaults(array('action' => 'view', 'format' => 'html'))
->get(array('action' => 'view'))
->put(array('action' => 'put'))
->delete(array('action' => 'delete'))
->afterMatch($adminPrepend);
$router->route('admin_module_action', '/admin/<:module>/<:action>')
->defaults(array('format' => 'html'))
->post(array('action' => 'post'))
->afterMatch($adminPrepend);
$router->route('admin_module', '/admin/(<:module>)')
->defaults(array('module' => 'home', 'action' => 'index', 'format' => 'html'))
->post(array('action' => 'post'))
->afterMatch($adminPrepend);