static function replaceParameters(array $paramsInfo, array $params): array {
        if(\count($params) !== \count($paramsInfo)) {
            throw new \Plasma\Exception('Insufficient amount of parameters passed, expected '.\count($paramsInfo).', got '.\count($params));
        }
        
        $realParams = array();
        $pos = (\array_key_exists(0, $params) ? 0 : 1);
        
        foreach($paramsInfo as $param) {
            $key = ($param[0] === ':' ? $param : ($pos++));
            
            if(!\array_key_exists($key, $params)) {
                throw new \Plasma\Exception('Missing parameter with key "'.$key.'"');
            }
            
            $realParams[] = $params[$key];
        }
        
        return $realParams;
    }