@Rushino You have two 'apps' here - the front-end (for readers) and the backend (for admins). For every group of functionality, you have a controller.
Logging in is such a group, which includes the generation of the form HTML (the fields, calling the view), and the handling of the form (the validation, connecting with the model). So 'login' is a controller with two actions - generateForm and handleForm.
Pages is divided between the front end app - which just shows pages - and the backend app which allows editing, deleting, creating, and possibly views them in a different way. The homepage is 'just another page' on the front end at least, so fits within the pages controller. On the backend, its logic might be different enough that it justifies having a different controller entirely.
For users - if users can register themselves, they will need a frontend controller, but if not, everything to do with users just goes in the backend.
Note that each of the backend functions may require both a generator and a handler. These things can be split out into config files, though, with a plugin that is a generic form generator.
In summary, it looks like this:
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