public function parseComponent($str)
	{
		if (! is_string($str)) {
			throw new InvalidUrlException('Unexpected type.');
		}
		if (strpos($str, ' ') !== false) {
			throw new InvalidUrlException('Path contains whitespace.');
		}
		$p = explode('/', $str);
		foreach ($p as $i => $v) {
			$p[$i] = rawurldecode($v);
		}
		$decodedPath = join('/', $p);
		$this->path->set($decodedPath);
	}