system/classes/Route.php
public function routeExec()
    {

        // If no controller was found by routeFind()...
        if (!isset($this->controllerPath)) {
            $this->debug('routeExec: No controllerPath set. Routing to 404.');
            $this->error('404');
            exit;
        }

        // Grab method arguments from the URL.
        if (isset($this->methodArgs)) {
            $methodArgs = $this->methodArgs;
        }
        else {
            if ($this->collectionIDGiven) {
                $methodArgs = $this->partialPathArray($this->controllerOffset+1, 1);
            }
            else {
                $methodArgs = $this->partialPathArray($this->controllerOffset+2);
            }

            // Remove the last item from arguments if empty.
            $lastItem = count($methodArgs)-1;
            if (isset($methodArgs[$lastItem]) && $methodArgs[$lastItem] == '') {
                array_pop($methodArgs);
            }

            // If no arguments are set then make empty array.
            if (empty($methodArgs) || $methodArgs[0] == '') {
                $methodArgs = array();
            }
            else {
                // Sanitize arguments.
                $input = new Input($methodArgs);
                $methodArgs = $input->getData();
            }
        }

        /** Maps an array of arguments derived from the URL into a method with a comma
         *  delimited list of parameters. Calls the method.
         *
         *  I.E. If the URL is:
         *  'www.mySite.com/MyController/FooBar/Param1/Param2/Param3'
         *
         *  And the FooBar method within MyController is defined as:
         *  public function FooBar($a, $b, $c) {}
         *
         *  $a will have the value 'Param1'
         *  $b will have the value 'Param2'  ... and so forth.
         */
        call_user_func_array(array($this->controller, $this->method), $methodArgs);

    }
public function routeExec()
    {

        // If no controller was found by routeFind()...
        if (!isset($this->controllerPath)) {
            $this->debug('routeExec: No controllerPath set. Routing to 404.');
            $this->error('404');
            exit;
        }

        // Grab method arguments from the URL.
        if (isset($this->methodArgs)) {
            $methodArgs = $this->methodArgs;
        }
        else {
            if ($this->collectionIDGiven) {
                $methodArgs = $this->partialPathArray($this->controllerOffset+1, 1);
            }
            else {
                $methodArgs = $this->partialPathArray($this->controllerOffset+2);
            }

            // Remove the last item from arguments if empty.
            $lastItem = count($methodArgs)-1;
            if (isset($methodArgs[$lastItem]) && $methodArgs[$lastItem] == '') {
                array_pop($methodArgs);
            }

            // If no arguments are set then make empty array.
            if (empty($methodArgs) || $methodArgs[0] == '') {
                $methodArgs = array();
            }
            else {
                // Sanitize arguments.
                $input = new Input($methodArgs);
                $methodArgs = $input->getData();
            }
        }

        /** Maps an array of arguments derived from the URL into a method with a comma
         *  delimited list of parameters. Calls the method.
         *
         *  I.E. If the URL is:
         *  'www.mySite.com/MyController/FooBar/Param1/Param2/Param3'
         *
         *  And the FooBar method within MyController is defined as:
         *  public function FooBar($a, $b, $c) {}
         *
         *  $a will have the value 'Param1'
         *  $b will have the value 'Param2'  ... and so forth.
         */
        call_user_func_array(array($this->controller, $this->method), $methodArgs);

    }
Uses the info generated by routeFind() to then create an instance of the
appropriate controller and call the desired method.