@Rushino Você tem dois 'aplicativos' aqui - o front-end (para leitores) e o back-end (para administradores). Para cada grupo de funcionalidade, você tem um controlador.
O login é um grupo desse tipo, que inclui a geração do formulário HTML (os campos, chamando a visualização) e o tratamento do formulário (a validação, conectando-se ao modelo). Portanto, 'login' é um controlador com duas ações - generateForm e handleForm.
O Pages é dividido entre o aplicativo front-end - que apenas mostra as páginas - e o aplicativo back-end que permite editar, excluir, criar e possivelmente exibi-los de uma maneira diferente. A página inicial é "apenas mais uma página" no front-end, pelo que cabe no controlador de páginas. No back-end, sua lógica pode ser diferente o suficiente para justificar a existência de um controlador diferente.
Para usuários - se os usuários puderem se registrar, precisarão de um controlador de front-end, mas, se não, tudo a ver com os usuários ocorre apenas no back-end.
Observe que cada uma das funções de back-end pode exigir um gerador e um manipulador. Porém, essas coisas podem ser divididas em arquivos de configuração, com um plug-in que é um gerador de formulários genérico.
Em resumo, fica assim:
Frontend
Pages
View, Handle
Login
View, Handle
Users
Register (note that the handler can be the same as 'create' on the backend)
Contact
View
Handle
Backend
Users
Create, Delete, Edit, Update, View
Pages
Create, Delete, Edit, Update, View