public function clear($opt = self::SCHEME | self::HOST | self::PORT | self::CREDENTIALS | self::PATH | self::QUERY | self::FRAGMENT)
	{
		$scheme = ($opt & self::SCHEME) === self::SCHEME;
		$host = ($opt & self::HOST) === self::HOST;
		$port = ($opt & self::PORT) === self::PORT;
		$creds = ($opt & self::CREDENTIALS) === self::CREDENTIALS;
		$path = ($opt & self::PATH) === self::PATH;
		$query = ($opt & self::QUERY) === self::QUERY;
		$fragment = ($opt & self::FRAGMENT) === self::FRAGMENT;
		if ($scheme) {
			$this->scheme->clear();
		}
		if ($host) {
			$this->host->clear();
		}
		if ($port) {
			$this->port->clear();
		}
		if ($creds) {
			$this->credentials->clear();
		}
		if ($path) {
			$this->path->clear();
		}
		if ($query) {
			$this->query->clear();
		}
		if ($fragment) {
			$this->fragment->clear();
		}
		return $this;
	}