##### SUMMARY
when the following command is run
`ansible -i /tmp/inventory -m include_vars --args "dir=../defaults name=role_defaults"  --playbook-dir=../ansible-role-forgerock-ds frds`
it errors with 

```
An exception occurred during task execution. To see the full traceback, use -vvv. The error was: AttributeError: 'dict' object has no attribute '_data_source'
frds-user-01 | FAILED! => {
    "msg": "Unexpected failure during module execution.",
    "stdout": ""
}
```

if i edit `/usr/lib/python2.7/site-packages/ansible/plugins/action/include_vars.py` and comment out line `100`

```
        results = dict()
        if self.source_dir:
            self._set_dir_defaults()
            #self._set_root_dir()
            if not path.exists(self.source_dir):
```

and rerun it returns the values contained within that directory.

I am using  `molecule` to test the ansible role and have a workaround within `conftest.py` as follows

```
import pytest


@pytest.fixture(scope='module')
def ansible_vars(request, host):
    defaults_files1 = "file=../../defaults/main/common.yml name=role_defaults"
    defaults_files2 = "file=../../defaults/main/directory.yml name=role_defaults"
    defaults_files3 = "file=../../defaults/main/proxy.yml name=role_defaults"
    defaults_files4 = "file=../../defaults/main/replication.yml name=role_defaults"
    vars_files = "file=../../vars/main.yml name=role_vars"

    ansible_vars = host.ansible(
            "include_vars",
            defaults_files1)["ansible_facts"]["role_defaults"]

    ansible_vars.update(host.ansible(
        "include_vars",
        defaults_files2)["ansible_facts"]["role_defaults"])

    ansible_vars.update(host.ansible(
        "include_vars",
        defaults_files3)["ansible_facts"]["role_defaults"])

    ansible_vars.update(host.ansible(
        "include_vars",
        defaults_files4)["ansible_facts"]["role_defaults"])

    ansible_vars.update(host.ansible(
        "include_vars",
        vars_files)["ansible_facts"]["role_vars"])

    return ansible_vars
```

but would prefer to use the correct command module to do so.

##### ISSUE TYPE
- Bug Report

##### COMPONENT NAME
`include_vars`

##### ANSIBLE VERSION
<!--- Paste verbatim output from "ansible --version" between quotes -->
```
ansible 2.8.4
  config file = None
  configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python2.7/site-packages/ansible
  executable location = /bin/ansible
  python version = 2.7.5 (default, Jun 20 2019, 20:27:34) [GCC 4.8.5 20150623 (Red Hat 4.8.5-36)]

```

##### CONFIGURATION
`Return nothing`

##### OS / ENVIRONMENT
Linux, Centos 7.6


##### STEPS TO REPRODUCE
`ansible -i /tmp/inventory -m include_vars --args "dir=../defaults name=role_defaults"  --playbook-dir=../ansible-role-forgerock-ds frds`

##### EXPECTED RESULTS
It returns all the values defined in all the files within the directory


##### ACTUAL RESULTS
```
An exception occurred during task execution. To see the full traceback, use -vvv. The error was: AttributeError: 'dict' object has no attribute '_data_source'
frds-user-01 | FAILED! => {
    "msg": "Unexpected failure during module execution.",
    "stdout": ""
}
```

""" Loads a file and converts the output into a valid Python dict.
        Args:
            filename (str): The source file.
        Returns:
            Tuple (bool, str, dict)
        """
        results = dict()
        failed = False
        err_msg = ''
        if validate_extensions and not self._is_valid_file_ext(filename):
            failed = True
            err_msg = ('{0} does not have a valid extension: {1}'.format(to_native(filename), ', '.join(self.valid_extensions)))
        else:
            b_data, show_content = self._loader._get_file_contents(filename)
            data = to_text(b_data, errors='surrogate_or_strict')
            self.show_content = show_content
            data = self._loader.load(data, file_name=filename, show_content=show_content)
            if not data:
                data = dict()
            if not isinstance(data, dict):
                failed = True
                err_msg = ('{0} must be stored as a dictionary/hash'.format(to_native(filename)))
            else:
                self.included_files.append(filename)
                results.update(data)
        return failed, err_msg, results
    def _load_files_in_dir(self, root_dir, var_files):