### Apache Airflow Provider(s)

snowflake

### Versions of Apache Airflow Providers

Versions 2.2.x (since https://github.com/apache/airflow/commit/0a37be3e3cf9289f63f1506bc31db409c2b46738).


### Apache Airflow version

2.2.1

### Operating System

Debian GNU/Linux 10 (buster)

### Deployment

Other 3rd-party Helm chart

### Deployment details

Bitnami Airflow Helm chart @ version 8.0.2

### What happened

When connecting to Snowflake via SQLAlchemy using the Snowflake Hook, I get an error that the URL is not valid because my Snowflake instance is in US West 2 (Oregon) which means I don't provide a region explicitly. Snowflake's documentation says:
> If the account is located in the AWS US West (Oregon) region, no additional segments are required and the URL would be xy12345.snowflakecomputing.com

The error is that `xy12345..snowflakecomputing.com` is not a valid URL (note the double-dot caused by the lack of a region).

### What you expected to happen

I expect the connection to be successful.

### How to reproduce

You can use the default snowflake connection if you have one defined and see this problem with the following one-liner:
```shell
python -c 'from airflow.providers.snowflake.hooks.snowflake import SnowflakeHook; SnowflakeHook().get_sqlalchemy_engine().connect()'
```

### Anything else

Fortunately I imagine the fix for this is just to leave the region URL component out when `region` is `None` here: https://github.com/apache/airflow/commit/0a37be3e3cf9289f63f1506bc31db409c2b46738#diff-2b674ac999a5b938fe5045f6475b0c5cc76e4cab89174ac448a9e1d41a5c04d5R215.

Using version `2.1.1` of the Snowflake provider with version `2.2.1` of Airflow is currently a viable workaround so for now I am just avoiding the update to the provider.

### Are you willing to submit PR?

- [ ] Yes I am willing to submit a PR!

### Code of Conduct

- [X] I agree to follow this project's [Code of Conduct](https://github.com/apache/airflow/blob/main/CODE_OF_CONDUCT.md)

airflow/providers/snowflake/hooks/snowflake.py
uri = (
            'snowflake://{user}:{password}@{account}.{region}/{database}/{schema}'
            '?warehouse={warehouse}&role={role}&authenticator={authenticator}'
        )
        return uri.format(**conn_params)
    def get_conn(self) -> SnowflakeConnection:
        """Returns a snowflake.connection object"""
        conn_config = self._get_conn_params()
        conn = connector.connect(**conn_config)
        return conn
    def get_sqlalchemy_engine(self, engine_kwargs=None):
        """
        Get an sqlalchemy_engine object.
        :param engine_kwargs: Kwargs used in :func:`~sqlalchemy.create_engine`.
        :return: the created engine.
        """
        engine_kwargs = engine_kwargs or {}
        conn_params = self._get_conn_params()
        if 'insecure_mode' in conn_params:
            engine_kwargs.setdefault('connect_args', dict())
            engine_kwargs['connect_args']['insecure_mode'] = True
        return create_engine(self._conn_params_to_sqlalchemy_uri(conn_params), **engine_kwargs)
    def set_autocommit(self, conn, autocommit: Any) -> None:
        conn.autocommit(autocommit)
        conn.autocommit_mode = autocommit
    def get_autocommit(self, conn):
        return getattr(conn, 'autocommit_mode', False)
    def run(