protected static function flattenRecursive(&$recursion, $prefix)
    {
        $values = [];

        foreach ($recursion as $key=>&$value)
        {
            if (is_array($value) && !empty($value))
            {
                $values = array_merge($values, static::flattenRecursive($value, $prefix . $key . '.'));
            }
            else
            {
                $values[$prefix . $key] = $value;
            }
        }

        return $values;
    }