<!--- Verify first that your feature was not already discussed on GitHub -->
<!--- Complete *all* sections as described, this form is processed automatically -->

##### SUMMARY
The [__combine__ filter of Ansible](https://docs.ansible.com/ansible/latest/user_guide/playbooks_filters.html#combining-hashes-dictionaries) is limited if it comes to nested elements that contain lists. The __recursive__ functionality only does merge dict elements but not nested list elements.
* The current implementation will simply take the second list as result.
* The expected results would be to merge both lists into a single list.

##### ISSUE TYPE
- Feature Idea

##### COMPONENT NAME
Jinjia2 integration

##### ADDITIONAL INFORMATION
Example:
```yaml
---
- hosts: localhost
  gather_facts: false
  vars:
    foo:
      list:
      - a
      - b
      dict:
        foo: 1
    bar:
      list:
      - c
      - d
      dict:
        bar: 2
  tasks:
  - debug:
      msg: '{{ {} | combine(foo, bar, recursive=True) }}'
```

Expected:
```yaml
{
  "dict": {
      "bar": 2,
      "foo": 1
  },
  "list": [
      "a",
      "b",
      "c",
      "d"
  ]
}
```
Actual:
```yaml
{
  "dict": {
      "bar": 2,
      "foo": 1
  },
  "list": [
      "c",
      "d"
  ]
}
```

try:
        mylist = list(mylist)
        if seed:
            r = Random(seed)
            r.shuffle(mylist)
        else:
            shuffle(mylist)
    except Exception:
        pass
    return mylist
def get_hash(data, hashtype='sha1'):
    try:  
        h = hashlib.new(hashtype)
    except Exception:
        return None
    h.update(to_bytes(data, errors='surrogate_or_strict'))
    return h.hexdigest()
def get_encrypted_password(password, hashtype='sha512', salt=None, salt_size=None, rounds=None):
    passlib_mapping = {
        'md5': 'md5_crypt',
        'blowfish': 'bcrypt',
        'sha256': 'sha256_crypt',
        'sha512': 'sha512_crypt',
    }
    hashtype = passlib_mapping.get(hashtype, hashtype)
    try:
        return passlib_or_crypt(password, hashtype, salt=salt, salt_size=salt_size, rounds=rounds)
    except AnsibleError as e:
        reraise(AnsibleFilterError, AnsibleFilterError(to_native(e), orig_exc=e), sys.exc_info()[2])
def to_uuid(string, namespace=UUID_NAMESPACE_ANSIBLE):