module Temple::Mixins::EngineDSL

def before(name, *args, &block)

def before(name, *args, &block)
  name = chain_name(name)
  e = chain_element(args, block)
  chain.map! {|f| f.first == name ? [e, f] : [f] }.flatten!(1)
  raise "#{name} not found" unless chain.include?(e)
  chain_modified!
end