Attempt to fix Issue #278
Add run-hook property
Allow hooks to be run before modifying keymaps
Allow keymaps to be copied before modifying them
Fix Issue #278