public function removeChild(self $node)
	{
		if ($node->getParent() !== $this) {
			$msg = sprintf('Cannot remove %s from %s because it is not a child.', $node, $this);
			throw new InvalidArgumentException($msg);
		}
		$this->removeChildAt($node->getChildIndex());
		return $this;
	}