public function addPath($namespace, $path, $prepend = false, $psr0 = false)
    {
        if ($path != '') {
            $path = rtrim(str_replace('\\', '/', $path), '/') . '/';
        }
        
        if ($psr0) {
            $this->psr0 = true;
            if (! isset($this->psr0Paths[$namespace])) {
                $this->psr0Paths[$namespace] = array();
            }
            if ($prepend) {
                array_unshift($this->psr0Paths[$namespace], $path);
            } else {
                array_push($this->psr0Paths[$namespace], $path);
            }
        } else {
            $namespace = '\\' . trim($namespace, '\\');
            
            if (! isset($this->paths[$namespace])) {
                $this->paths[$namespace] = array();
            }
            if ($prepend) {
                array_unshift($this->paths[$namespace], $path);
            } else {
                array_push($this->paths[$namespace], $path);
            }
        }
    }