public function ancestorKey(Key $key)
{
if ($key->state() !== self::STATE_NAMED) {
throw new InvalidArgumentException('Cannot use an incomplete key as an ancestor');
}
$path = $key->path();
$this->path = array_merge($path, $this->path);
return $this;
}