public function remove( $tag, $callback, $priority = 10 ) {
		if (!array_key_exists($tag, $this->hooks) || !array_key_exists($priority, $this->hooks[$tag]))
			return false;

		$position = array_search($callback, $this->hooks[$tag][$priority]);

		if (false === $position)
			return false;

		unset($this->hooks[$tag][$priority][$position]);

		if (empty($this->hooks[$tag][$priority]))
			unset($this->hooks[$tag][$priority]);

		unset($this->merged[$tag]);

		return true;
	}