Support array as root element in JSON
Added a blank space and removed to_sym
private callback methods should work
Merge branch 'master' into normalizecb

* master:
  private callback methods should work
  Update mail to minimum version 2.5.4
Use new hash syntax
polymorphic before callbacks
push the before filter lambdas to factory methods
rename terminal to halting, try to keep naming consistent
polymorphic after filter
Merge pull request #10600 from aditya-kapoor/code_refactor

Removed Class Eval and used define_method instead for the SafeBuffer
polymorphic around callbacks
fix shadowed variable warnings
Merge branch 'polymorphic'

* polymorphic: (41 commits)
  fix shadowed variable warnings
  polymorphic around callbacks
  polymorphic after filter
  rename terminal to halting, try to keep naming consistent
  push the before filter lambdas to factory methods
  polymorphic before callbacks
  use a singleton end node
  Revert "we never pass blocks, so remove this"
  if there is nothing to compile, then do not bother compiling
  Arrays are no longer supported
  we never pass blocks, so remove this
  raise an argument error if the filter arity is greater than 1
  pass the actual filter, not a string
  do not keep a reference to the chain in the callback objects
  fix deprecation test
  push merge code to the callback itself
  dup the callback and set the chain
  remove klass because it is not used
  rename instance variables
  push duplicates? logic to the instance
  ...
Merge pull request #10266 from vipulnsward/fix_HIA_to_hash

fix HashWithIndifferentAccess#to_hash behaviour
fixing arity2 test
halting lambda must be instance execed
use public api for testing rather than grabbing instance variables
inspect the filter when displaying error messages
deprecating string based terminators
use inject rather than multiple assignments