Only add HOOKS if they are not already in the data structure.

This is primarily for tidiness as it is unlikely we'll be in a situation
where this can happen.

Fix #2
release 0.9.17