public function applyQueryFilter( $request, $query_vars ) {
		$condition = $this->getCondition();

		if ( $this->getQueryFilter() === null ) {
			return $query_vars;
		}

		if ( ! $condition instanceof UrlCondition ) {
			throw new ConfigurationException(
				'Only routes with URL condition can use queries. ' .
				'Make sure your route has a URL condition and it is not in a non-URL route group.'
			);
		}

		$arguments = $this->getCondition()->getArguments( $request );

		return call_user_func_array(
			$this->getQueryFilter(),
			array_merge( [$query_vars], array_values( $arguments ) )
		);
	}