test: Enable branch coverage and get to 100%

Also found and fixed a bug with before and after hooks, where decorators
could overwrite one-another.

Closes #87