code: public function resolve()
      {
          $rawParams = $this->getParams();
          $endOfOptionsFound = false;
          if (isset($rawParams[0])) {
              $route = array_shift($rawParams);
  
              if ($route === '--') {
                  $endOfOptionsFound = true;
                  $route = array_shift($rawParams);
              }
          } else {
              $route = '';
          }
  
          $params = [];
          $prevOption = null;
          foreach ($rawParams as $param) {
              if ($endOfOptionsFound) {
                  $params[] = $param;
              } elseif ($param === '--') {
                  $endOfOptionsFound = true;
              } elseif (preg_match('/^--([\w-]+)(?:=(.*))?$/', $param, $matches)) {
                  $name = $matches[1];
                  if (is_numeric(substr($name, 0, 1))) {
                      throw new Exception('Parameter "' . $name . '" is not valid');
                  }
  
                  if ($name !== Application::OPTION_APPCONFIG) {
                      $params[$name] = isset($matches[2]) ? $matches[2] : true;
                      $prevOption = &$params[$name];
                  }
              } elseif (preg_match('/^-([\w-]+)(?:=(.*))?$/', $param, $matches)) {
                  $name = $matches[1];
                  if (is_numeric($name)) {
                      $params[] = $param;
                  } else {
                      $params['_aliases'][$name] = isset($matches[2]) ? $matches[2] : true;
                      $prevOption = &$params['_aliases'][$name];
                  }
              } elseif ($prevOption === true) {
                  // `--option value` syntax
                  $prevOption = $param;
              } else {
                  $params[] = $param;
              }
          }
  
          return [$route, $params];
      }
docs: Resolves the current request into a route and the associated parameters.
  @return array the first element is the route, and the second is the associated parameters.
  @throws Exception when parameter is wrong and can not be resolved