public function render($layout = null, $title = null)
    {
        // Initialise:
        
        $html = '';
        
        // Load Requirements:
        
        $this->loadRequirements();
        
        // Obtain Cached HTML (if enabled):
        
        if ($this->isCacheEnabled()) {
            $html = self::getRenderCache()->get($this->getRenderCacheID());
        }
        
        // Render HTML:
        
        if (!$html) {
            
            // Render Self:
            
            $html = (string) $this->renderSelf($layout, $title);
            
            // Cache Rendered HTML:
            
            if ($this->isCacheEnabled()) {
                self::getRenderCache()->set($this->getRenderCacheID(), $html, $this->getRenderCacheLifetime());
            }
            
        } elseif (isset($_REQUEST['debug_cache'])) {
            
            // Output Debug Information:
            
            Debug::message(
                sprintf(
                    'Rendered from cache: "%s" [%s]; lifetime: %d second(s)',
                    $this->getTitle(),
                    $this->getRenderCacheID(),
                    $this->getRenderCacheLifetime()
                ),
                false
            );
            
        }
        
        // Answer HTML:
        
        return $html;
    }