def execute_replacement(node, captures)
      if replacement.parameters.length == 1
        instance_exec node, &replacement
      else
        instance_exec node, captures, &replacement
      end
    end
def execute_replacement(node, captures)
      if replacement.parameters.length == 1
        instance_exec node, &replacement
      else
        instance_exec node, captures, &replacement
      end
    end
Execute {#replacement} block
 @param [Astrolabe::Node] node that will be yield in the replacement block
 @param [Array<Object>, nil] captures are yield if {#replacement} take second argument.