public function lookup($nodeId, $siteId)
    {
        if (!$this->isLoaded) {
            $this->load();
            $this->isLoaded = true;
        }

        // Build the array we will store at the end of the query if we have
        // anything changed during the request
        if ($this->queriedCount < self::MAX_CACHE_SIZE) {
            $this->queried[$nodeId][$siteId] = true;
        }
        $this->queriedCount++;

        if (!isset($this->loaded[$nodeId][$siteId])) {
            // We already have cached this path in the past, or it was not in
            // original cache source array, or it is non existing anymore or
            // outdated, our cache is broken, we need to lookup and update
            return $this->fetchAlias($nodeId, $siteId) ?? 'node/' . $nodeId;
        }

        // Best case scenario, it exists!
        return $this->loaded[$nodeId][$siteId];
    }