IoC in ansible roles (avoiding boilerplate) - how?

So, a follow-on question. I've a number of roles (again, role playbooks
are potentially developed by independent teams). Typically, the tasks any
particular role will execute look like this:

- common preamble
- role-specific tasks
- common suffix.

I'd like to minimise (or remove) any common boilerplate from each of the
individual roles. Typically, the way to achieve that is via some take on
IoC. However, given that include: doesn't expand J2, I'm finding it hard
to understand how one might best express this in ansible.

Any clues?

Cheers,
jan