##### SUMMARY
When using wild-card in package name to remove, the first run will remove the packages,
but the second run will fail with message `Failed to install some of the specified packages`

##### ISSUE TYPE
- Bug Report

##### COMPONENT NAME

- dnf

##### ANSIBLE VERSION
```
ansible 2.8.5
  config file = /home/rabin/src/ansible/workstation-setup/ansible.cfg
  configured module search path = ['/home/rabin/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python3.7/site-packages/ansible
  executable location = /usr/bin/ansible
  python version = 3.7.4 (default, Jul  9 2019, 16:32:37) [GCC 9.1.1 20190503 (Red Hat 9.1.1-1)]
```

##### CONFIGURATION

```
ANSIBLE_SSH_CONTROL_PATH(/home/rabin/src/ansible/workstation-setup/ansible.cfg) = ./.ansible/ssh-%%C
CACHE_PLUGIN(/home/rabin/src/ansible/workstation-setup/ansible.cfg) = jsonfile
CACHE_PLUGIN_CONNECTION(/home/rabin/src/ansible/workstation-setup/ansible.cfg) = ./.ansible/facts_cache
CACHE_PLUGIN_TIMEOUT(/home/rabin/src/ansible/workstation-setup/ansible.cfg) = 86400
DEFAULT_EXECUTABLE(/home/rabin/src/ansible/workstation-setup/ansible.cfg) = /bin/bash
DEFAULT_GATHERING(/home/rabin/src/ansible/workstation-setup/ansible.cfg) = smart
DEFAULT_HOST_LIST(/home/rabin/src/ansible/workstation-setup/ansible.cfg) = ['/home/rabin/src/ansible/workstation-setup/inventory']
DEFAULT_REMOTE_PORT(/home/rabin/src/ansible/workstation-setup/ansible.cfg) = 22
RETRY_FILES_SAVE_PATH(/home/rabin/src/ansible/workstation-setup/ansible.cfg) = /home/rabin/src/ansible/workstation-setup/.ansible/retry
```

##### OS / ENVIRONMENT

* Fedora 30

##### STEPS TO REPRODUCE

try to remove a package twice
or run the playbook twice (first run will work if there is a match, but secend run will fail)


```yaml
- dnf:
    name: lohit-*-fonts

- dnf:
    name: lohit-*-fonts
    state: absent

- dnf:
    name: lohit-*-fonts
    state: absent

```

##### EXPECTED RESULTS
Same as when you ask it to remove a spesific package
```yaml
- dnf:
    name: lohit-tamil-fonts

- dnf:
    name: lohit-tamil-fonts
    state: absent

- dnf:
    name: lohit-tamil-fonts
    state: absent
```


##### ACTUAL RESULTS
```
fatal: [localhost]: FAILED! => {"changed": false, "failures": ["lohit-*-fonts - no package matched: lohit-*-fonts"], "msg": "Failed to install some of the specified packages", "rc": 1, "results": []}
```

msg="Failed to download packages: {0}".format(to_text(e)),
                        results=[],
                    )
                if self.download_only:
                    for package in self.base.transaction.install_set:
                        response['results'].append("Downloaded: {0}".format(package))
                    self.module.exit_json(**response)
                else:
                    self.base.do_transaction()
                    for package in self.base.transaction.install_set:
                        response['results'].append("Installed: {0}".format(package))
                    for package in self.base.transaction.remove_set:
                        response['results'].append("Removed: {0}".format(package))
                if failure_response['failures']:
                    failure_response['msg'] = 'Failed to install some of the specified packages',
                    self.module.exit_json(**response)
                self.module.exit_json(**response)
        except dnf.exceptions.DepsolveError as e:
            failure_response['msg'] = "Depsolve Error occured: {0}".format(to_native(e))
            self.module.fail_json(**failure_response)
        except dnf.exceptions.Error as e:
            if to_text("already installed") in to_text(e):
                response['changed'] = False
                response['results'].append("Package already installed: {0}".format(to_native(e)))
                self.module.exit_json(**response)
            else:
                failure_response['msg'] = "Unknown Error occured: {0}".format(to_native(e))
                self.module.fail_json(**failure_response)
    @staticmethod
    def has_dnf():