### Summary

When running `ansible-playbook` using connection plugin from `ansible.builtin` collection using it's FQCN, the whole process crashes.

The crash happens during any configuration lookup using `AnsiblePlugin.get_option()` from said module with following exception:
> Requested entry (plugin_type: connection plugin: ansible_collections.ansible.builtin.plugins.connection.ssh setting: host ) was not defined in configuration

It doesn't matter if the connection plugin is specified via `--connection` argument, `connection:` keyword or `ansible_connection` variable.

However, ad-hoc commands and ansible console does work using FQCN (which is recommended in the docs).

---

**PS.** I'm willing to investigate this further and possibly even make a PR if someone with internal knowledge would point me in the right direction.

### Issue Type

Bug Report

### Component Name

ansible-playbook

### Ansible Version

```console
$ ansible --version
ansible [core 2.12.5]
  config file = /etc/ansible/ansible.cfg
  configured module search path = ['/home/kristian/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /home/kristian/playground/ansible-playbook-fqcn-issue/venv/lib/python3.10/site-packages/ansible
  ansible collection location = /home/kristian/.ansible/collections:/usr/share/ansible/collections
  executable location = /home/kristian/playground/ansible-playbook-fqcn-issue/venv/bin/ansible
  python version = 3.10.4 (main, Mar 23 2022, 23:05:40) [GCC 11.2.0]
  jinja version = 3.1.1
  libyaml = True
```


### Configuration

```console
$ ansible-config dump --only-changed
No custom config, all defaults
```


### OS / Environment

- Arch Linux (kernel version `5.17.4-arch1-1`)
- Python 3.10.4
- `ansible-core` installed via pip (inside fresh venv)

### Steps to Reproduce

Example playbook using `connection` keyword:

```yaml
- hosts: all # Do not use implicit `localhost` as `local` plugin won't make configuration lookup in default configuration
  connection: ansible.builtin.ssh
  tasks:
    - ping:
```

Quick and dirty one-liner using `--connection` CLI argument instead:
**PS!** Shell must support process substitution for the inline playbook (ie. bash or zsh)
```bash
ansible-playbook -i localhost, --connection ansible.builtin.ssh <(echo "[{'hosts':'all','tasks':[{'action':'ping'}]}]")
```

> Note: Although it fails at fact gathering, it is no factor - it will fail without it as well

### Expected Results

Excpected the command not to crash during connection plugin config lookup

### Actual Results

```console
$ ansible-playbook -i localhost, --connection ansible.builtin.ssh -vvvv <(echo "[{'hosts':'all','tasks':[{'action':'ping'}]}]")
/home/kristian/playground/ansible-playbook-fqcn-issue/venv/lib/python3.10/site-packages/paramiko/transport.py:236: CryptographyDeprecationWarning: Blowfish has been deprecated
  "class": algorithms.Blowfish,
ansible-playbook [core 2.12.5]
  config file = /etc/ansible/ansible.cfg
  configured module search path = ['/home/kristian/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /home/kristian/playground/ansible-playbook-fqcn-issue/venv/lib/python3.10/site-packages/ansible
  ansible collection location = /home/kristian/.ansible/collections:/usr/share/ansible/collections
  executable location = /home/kristian/playground/ansible-playbook-fqcn-issue/venv/bin/ansible-playbook
  python version = 3.10.4 (main, Mar 23 2022, 23:05:40) [GCC 11.2.0]
  jinja version = 3.1.1
  libyaml = True
Using /etc/ansible/ansible.cfg as config file
setting up inventory plugins
Set default localhost to localhost
Parsed localhost, inventory source with host_list plugin
Loading callback plugin default of type stdout, v2.0 from /home/kristian/playground/ansible-playbook-fqcn-issue/venv/lib/python3.10/site-packages/ansible/plugins/callback/default.py
Skipping callback 'default', as we already have a stdout callback.
Skipping callback 'minimal', as we already have a stdout callback.
Skipping callback 'oneline', as we already have a stdout callback.

PLAYBOOK: 13 *********************************************************************************************************************************************************************************************************************************
Positional arguments: /proc/self/fd/13
verbosity: 4
connection: ansible.builtin.ssh
timeout: 10
become_method: sudo
tags: ('all',)
inventory: ('localhost,',)
forks: 5
1 plays in /proc/self/fd/13

PLAY [all] ***********************************************************************************************************************************************************************************************************************************

TASK [Gathering Facts] ***********************************************************************************************************************************************************************************************************************
task path: /proc/self/fd/13:1
The full traceback is:
Traceback (most recent call last):
  File "/home/kristian/playground/ansible-playbook-fqcn-issue/venv/lib/python3.10/site-packages/ansible/plugins/__init__.py", line 58, in get_option
    option_value = C.config.get_config_value(option, plugin_type=get_plugin_class(self), plugin_name=self._load_name, variables=hostvars)
  File "/home/kristian/playground/ansible-playbook-fqcn-issue/venv/lib/python3.10/site-packages/ansible/config/manager.py", line 425, in get_config_value
    value, _drop = self.get_config_value_and_origin(config, cfile=cfile, plugin_type=plugin_type, plugin_name=plugin_name,
  File "/home/kristian/playground/ansible-playbook-fqcn-issue/venv/lib/python3.10/site-packages/ansible/config/manager.py", line 558, in get_config_value_and_origin
    raise AnsibleError('Requested entry (%s) was not defined in configuration.' % to_native(_get_entry(plugin_type, plugin_name, config)))
ansible.errors.AnsibleError: Requested entry (plugin_type: connection plugin: ansible_collections.ansible.builtin.plugins.connection.ssh setting: host ) was not defined in configuration.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/kristian/playground/ansible-playbook-fqcn-issue/venv/lib/python3.10/site-packages/ansible/executor/task_executor.py", line 158, in run
    res = self._execute()
  File "/home/kristian/playground/ansible-playbook-fqcn-issue/venv/lib/python3.10/site-packages/ansible/executor/task_executor.py", line 600, in _execute
    result = self._handler.run(task_vars=variables)
  File "/home/kristian/playground/ansible-playbook-fqcn-issue/venv/lib/python3.10/site-packages/ansible/plugins/action/gather_facts.py", line 100, in run
    res = self._execute_module(module_name=fact_module, module_args=mod_args, task_vars=task_vars, wrap_async=False)
  File "/home/kristian/playground/ansible-playbook-fqcn-issue/venv/lib/python3.10/site-packages/ansible/plugins/action/__init__.py", line 973, in _execute_module
    self._make_tmp_path()
  File "/home/kristian/playground/ansible-playbook-fqcn-issue/venv/lib/python3.10/site-packages/ansible/plugins/action/__init__.py", line 390, in _make_tmp_path
    tmpdir = self._remote_expand_user(self.get_shell_option('remote_tmp', default='~/.ansible/tmp'), sudoable=False)
  File "/home/kristian/playground/ansible-playbook-fqcn-issue/venv/lib/python3.10/site-packages/ansible/plugins/action/__init__.py", line 856, in _remote_expand_user
    data = self._low_level_execute_command(cmd, sudoable=False)
  File "/home/kristian/playground/ansible-playbook-fqcn-issue/venv/lib/python3.10/site-packages/ansible/plugins/action/__init__.py", line 1253, in _low_level_execute_command
    rc, stdout, stderr = self._connection.exec_command(cmd, in_data=in_data, sudoable=sudoable)
  File "/home/kristian/playground/ansible-playbook-fqcn-issue/venv/lib/python3.10/site-packages/ansible/plugins/connection/ssh.py", line 1276, in exec_command
    self.host = self.get_option('host') or self._play_context.remote_addr
  File "/home/kristian/playground/ansible-playbook-fqcn-issue/venv/lib/python3.10/site-packages/ansible/plugins/__init__.py", line 60, in get_option
    raise KeyError(to_native(e))
KeyError: 'Requested entry (plugin_type: connection plugin: ansible_collections.ansible.builtin.plugins.connection.ssh setting: host ) was not defined in configuration.'
fatal: [localhost]: FAILED! => {
    "msg": "Unexpected failure during module execution.",
    "stdout": ""
}

PLAY RECAP ***********************************************************************************************************************************************************************************************************************************
localhost                  : ok=0    changed=0    unreachable=0    failed=1    skipped=0    rescued=0    ignored=0
```


### Code of Conduct

- [X] I agree to follow the Ansible Code of Conduct
"""
    PluginLoader optimized for Jinja2 plugins
    The filter and test plugins are Jinja2 plugins encapsulated inside of our plugin format.
    The way the calling code is setup, we need to do a few things differently in the all() method
    We can't use the base class version because of file == plugin assumptions and dedupe logic
    """
    def find_plugin(self, name, mod_type='', ignore_deprecated=False, check_aliases=False, collection_list=None):
        ''' this is really 'find plugin file' '''
        return super(Jinja2Loader, self).find_plugin(name, mod_type=mod_type, ignore_deprecated=ignore_deprecated, check_aliases=check_aliases,
                                                     collection_list=collection_list)
    def get(self, name, *args, **kwargs):
        if '.' in name:  
            return super(Jinja2Loader, self).get(name, *args, **kwargs)
        
        raise AnsibleError('No code should call "get" for Jinja2Loaders (Not implemented) for non collection use')
    def all(self, *args, **kwargs):