Fix issue with bleeding configurations
Fix issue with bleeding configurations

The smartMerge method modified the source object, which was allowing
some configurations to bleed through to subsequent hooks. To avoid this,
let's make a deep copy of the `ALL` hook data before passing it into
`smartMerge`

l8on/affiance,l8on/affiance