private function explodeUri($uri)
    {
        $uri_parts = array
        (
            "scheme"    => "",
            "hier_part" => "",
            "authority" => "",
            "path"      => "",
            "query"     => "",
            "fragment"  => "",
        );

        $uri_syntax = $this->compileUriRegEx();

        $uri_valid = preg_match($uri_syntax, $uri, $parts);

        $uri_parts = array_merge($uri_parts, $parts); //overwriting default values with matches

        $this->parseExplosions($uri_parts);

        return (bool) $uri_valid;
    }