Rails take the controller name and devise/sessions, devise/registrations etc inherit from the controller Devise. That way you can just stick with devise.html.erb as layout for every controller inside devise.
You can test that behaviour and create layout layouts/posts.html.erb and you will see that every action inside posts_controller will be using that as far as you will be not changing that :)
application_controller is the reason why application layout is default when you are not using some from inherited controller names.