public function dispatch($module, $action = 'index', array $params = [])
        {
            if ($module instanceof \Thin\Controller) {
                // Use current module instance
                $sModuleObject = $module;
            } else {
                // Get module instance
                $sModuleObject = $this->module($module, true, $action);

                // Does module exist?
                if (false === $sModuleObject) {
                    throw new Exception\FileNotFound("Module '" . $module ."' not found");
                }
            }

            // Store last dispatch request info
            $this->lastDispatch = array(
                'module' => $module,
                'action' => $action,
                'params' => $params
            );

            // Module action callable (includes __call magic function if method missing)?
            if (!is_callable(array($sModuleObject, $action))) {
                throw new Exception\FileNotFound("Module '" . $module ."' does not have a callable method '" . $action . "'");
            }

            // Handle result
            $result = call_user_func_array(array($sModuleObject, $action), $params);

            return $result;
        }