USAGE:

    from django.contrib.auth.decorators import login_required
    from django.contrib.admin.views.decorators import staff_member_required

    mypage_patterns = required(
        login_required,
        [
            ... url patterns ...
        ]
    )

    staff_patterns = required(
        staff_member_required,
        [
            ... url patterns ...
        ]
    )

    urlpatterns += [
        url(r'^staff/', include(staff_patterns, namespace='staff')),
        url(r'^mypage/', include(mypage_patterns, namespace='mypage')),
    ]

def required(wrapping_functions, patterns_rslt):
    '''
    USAGE:

    from django.contrib.auth.decorators import login_required
    from django.contrib.admin.views.decorators import staff_member_required

    mypage_patterns = required(
        login_required,
        [
            ... url patterns ...
        ]
    )

    staff_patterns = required(
        staff_member_required,
        [
            ... url patterns ...
        ]
    )

    urlpatterns += [
        url(r'^staff/', include(staff_patterns, namespace='staff')),
        url(r'^mypage/', include(mypage_patterns, namespace='mypage')),
    ]
    '''
    if not hasattr(wrapping_functions, '__iter__'):
        wrapping_functions = (wrapping_functions,)
    return [
        _wrap_instance__resolve(wrapping_functions, instance)
        for instance in patterns_rslt
    ]