Node Definition in Hiera with Puppet Roles and Profiles

There are several Puppet design patterns which can be applied, but the one I prefer overall is based on roles and profiles. In this article (Designing Puppet - Roles and profiles) Craig Dunn presents a pattern which divides Puppet modules in roles and profiles. In this pattern nodes include roles, roles include profiles and then profiles include the final modules.