modify regexp to fit angularjs's callback function name e.g.
angular.callbacks._0
filter cannot be static object
fix typo
preUpdate has optional argument
check array_key_exists to avoid notice