public function value($key, $default = null)
{
if (!$this->containsKey($key) && 1 === func_num_args()) {
throw new \InvalidArgumentException(sprintf('This node doesn\'t contain the "%s" property'), $key);
}
return $this->containsKey($key) ? $this->properties[$key] : $default;
}