public function registerHook ($key, Hook $hook)
		{
			if (isset($this->hooks[$key])) {
				throw new ReregisterHookException('Attempt to re-register hook ' . $key);
			}

			if (! $key || ! is_string($key)) {
				throw new InvalidHookIdentifierException('Invalid hook identifier ' . var_export($key, true));
			}

			$this->hooks[$key] = $hook;
		}