### Summary

I'm seeing some breakage in collections caused (very likely) by #73703:
1. `AttributeError: 'AnsibleModule' object has no attribute '_check_type_dict'` (community.general, infoblox.nios_modules);
2. `ImportError: cannot import name 'handle_aliases'` (from `ansible.module_utils.common.parameters`) (community.crypto, community.sops).

While 1. could be considered 'own fault' because it is a private API, 2. looks like a bug, since that's a break in a public interface.

### Issue Type

Bug Report

### Component Name

core

### Ansible Version

devel

### Configuration

.

### OS / Environment

.

### Steps to Reproduce

.

### Expected Results

.

### Actual Results

.
"""Return set of no log values
    :arg argument_spec: An argument spec dictionary
    :arg params: Dictionary of all parameters
    :returns: Set of strings that should be hidden from output::
        {'secret_dict_value', 'secret_list_item_one', 'secret_list_item_two', 'secret_string'}
    """
    no_log_values = set()
    for arg_name, arg_opts in argument_spec.items():
        if arg_opts.get('no_log', False):
            
            no_log_object = params.get(arg_name, None)
            if no_log_object:
                try:
                    no_log_values.update(_return_datastructure_name(no_log_object))
                except TypeError as e:
                    raise TypeError('Failed to convert "%s": %s' % (arg_name, to_native(e)))
        
        sub_argument_spec = arg_opts.get('options')
        if sub_argument_spec is not None:
            wanted_type = arg_opts.get('type')
            sub_parameters = params.get(arg_name)
            if sub_parameters is not None:
                if wanted_type == 'dict' or (wanted_type == 'list' and arg_opts.get('elements', '') == 'dict'):
                    
                    if not isinstance(sub_parameters, list):
                        sub_parameters = [sub_parameters]
                    for sub_param in sub_parameters: