##### 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": ""
}
```

if self._task._role:
            if self.source_dir.split('/')[0] == 'vars':
                path_to_use = (
                    path.join(self._task._role._role_path, self.source_dir)
                )
                if path.exists(path_to_use):
                    self.source_dir = path_to_use
            else:
                path_to_use = (
                    path.join(
                        self._task._role._role_path, 'vars', self.source_dir
                    )
                )
                self.source_dir = path_to_use
        else:
            current_dir = (
                "/".join(self._task._ds._data_source.split('/')[:-1])
            )
            self.source_dir = path.join(current_dir, self.source_dir)
    def _traverse_dir_depth(self):
        """ Recursively iterate over a directory and sort the files in
            alphabetical order. Do not iterate pass the set depth.
            The default depth is unlimited.
        """
        current_depth = 0
        sorted_walk = list(walk(self.source_dir))
        sorted_walk.sort(key=lambda x: x[0])
        for current_root, current_dir, current_files in sorted_walk:
            current_depth += 1