private function setPathdata(?array $pathArray = null): void
    {
        if (!Any::isArray($pathArray) || count($pathArray) < 1) {
            return;
        }

        // extract controller info from full path array
        $this->controller = ucfirst(Str::lowerCase(array_shift($pathArray)));
        if (count($pathArray) > 0) {
            // extract action
            $this->action = ucfirst(Str::lowerCase(array_shift($pathArray)));

            // safe other parts to arguments if exist
            if (count($pathArray) > 0) {
                $this->args = array_map(function ($in) {
                    return Any::isStr($in) ? urldecode($in) : $in;
                }, $pathArray);
            }
        }
    }