code: def create_module_same_hook_repeated():
      # Use to test module can run same hook multiple times
      m = ModuleForwardSingleInput("outer_mod_name", "inner_mod_name")
  
      def pre_hook(self, input: Tuple[str]) -> Tuple[str]:
          assert self.name == "outer_mod_name"
          input_change = input[0] + "_ph"
          return (input_change,)
  
      def forward_hook(self, input: Tuple[str], output: str):
          assert self.name == "outer_mod_name"
          assert input == ("a_ph_ph",)
          output = output + "_fh"
          return output
  
      m.register_forward_pre_hook(pre_hook)
      m.register_forward_pre_hook(pre_hook)
      m.register_forward_hook(forward_hook)
      m.register_forward_hook(forward_hook)
  
      return m
  
imports: import torch
  from typing import List, Tuple
label_desc: Use image node_id 6 for calling a global function with example usage: create_module_same_hook_repeated() and returns: m, input_change, output