def match_func_by_method (func) :
	def wrapper (request, **kwargs) :
		load_post_and_files(request)
		try :
			if request.META["REQUEST_METHOD"] not in ("GET", "POST", "DELETE", "PUT", ) :
				__method = "GET"
			else :
				__method = request.META["REQUEST_METHOD"]

			__name = "%s_%s" % \
				( \
					request.META["REQUEST_METHOD"].lower(), \
					func.func_name \
				)

			if not func.func_globals.has_key(__name) :
				return func(request, **kwargs)
			else :
				return func.func_globals.get(__name)(request, getattr(request, __method).copy(), **kwargs)

		except Exception, e :
			raise

	return wrapper

