@classmethod
def module_functions_decorated_with(this, module, decorator,
    exclude_methods=False, exclude_functions=False):
    """Returns generator of functions decorated with a given registered decorator
		in a given module.

		By default it will find all functions and class methods.
		
		*NOTE: only **registered** decorators are taken into account while searching the module. So it means
		taht you need to register all the decorators which are used in a given module
		before module import is done. Or registration of decorators should be done inside
		the module before their actual use.*
		
		Usage example:
		::
			from regd import DecoratorRegisrty

			# import the module containing decorators definition 
			import somedecomodule
			
			# register the decorators
			somedecomodule.deco1 = DecoratorRegistry.decorator( deco1)
			somedecomodule.deco2 = DecoratorRegistry.parametrized_decorator( deco2)
			
			# now import the module where deco1 and deco2 should be actually used
			# to decorate the functions/methods
			import somemodule
			
			# now we can trace decorators usage in a module like:
			print( "deco1 is applied to:")
			print( list( DecoratorRegistry.module_functions_decorated_with( somemodule, somedecomodule.deco1)))
			
			print( "deco2 is applied to:")
			print( list( DecoratorRegistry.module_functions_decorated_with( somemodule, somedecomodule.deco2)))
		
		:param module: module to lookup for decorated functions
		:param decorator: function which is used as decorator
		:param exclude_methods: bool flag to turn on/off class method inclusion into result
		:param exclude_functions: bool flag to turn on/off function inclusion into result
		:rtype: generator of dict { function_name : function }
		"""
    for mfn in this.all_decorated_module_functions(module, exclude_methods,
        exclude_functions):
        for fname, fn in mfn.items():
            if decorator in this.get_decorators(fn):
                yield {fname: fn}
