anchor.diff:  	ObjectOut = {struct, [{"g", {array, [O2, O4]}}]},
   	ObjectOut = ocs_rest:filter(Filters, ObjectIn).
   
  +filter_complex() ->
  +	[{userdata, [{doc, "Apply filters to a JSON object"}]}].
  +
  +filter_complex(_Config) ->
  +	G = {"g", erlang:unique_integer()},
  +	F = {struct, [{"f", erlang:unique_integer()}]},
  +	E = {struct, [{"g", erlang:unique_integer()},
  +			{"h", erlang:unique_integer()}]},
  +	Y = {struct, [{"p", {struct, [{"r", 3}, {"s", 9}]}}, {"q", 8}]},
  +	D = {struct, [{"z", 1}, {"f", F}, {"e", E}]},
  +	W = {struct, [{"name", "w"}, {"value", erlang:unique_integer()}]},
  +	V = {struct, [{"name", "v"}, {"value", erlang:unique_integer()}]},
  +	U = {struct, [{"name", "u"}, {"value", erlang:unique_integer()}]},
  +	C = {struct, [{"d", D}, {"x", {array, [U, V, 6, W, Y]}}]},
  +	B = {struct, [{"s", 5}, {"t", 6}, {"c", C}]},
  +	A = {struct, [{"o", 3}, {"p", 4}, {"b", B},
  +			{struct, [{"q", 5}, {"r", 6}]}]},
  +	ObjectIn = {struct, [{"a", A}, G, {"m", 9}]},
  +	Filters = "a.b.c.d.e,g,a.b.c.x.name=(w,v),a.b.c.x.value,a.b.c.d.f",
  +	ObjectOut = {struct, [{"a", {struct, [{"b", {struct, [{"c", {struct,
  +			[{"d", {struct, [{"e", E}, {"f", F}]}},
  +			{"x", {array, [W, V]}}]}}]}}]}}, G]},
  +	ObjectOut = ocs_rest:filter(Filters, ObjectIn).
  +
   %%---------------------------------------------------------------------
   %%  Internal functions
   %%---------------------------------------------------------------------
  
positive.code: 	ObjectOut = {struct, [A, {"b", {array, [Co, Do, Eo]}}]},
  	ObjectOut = ocs_rest:filter(Filters, ObjectIn).
  
  filter_complex() ->
  	[{userdata, [{doc, "Apply filters to a JSON object"}]}].
  
  filter_complex(_Config) ->
  	G = {"g", erlang:unique_integer()},
  	F = {struct, [{"f", erlang:unique_integer()}]},
  	E = {struct, [{"g", erlang:unique_integer()},
  			{"h", erlang:unique_integer()}]}, 
  	Y = {struct, [{"p", {struct, [{"r", 3}, {"s", 9}]}}, {"q", 8}]},
  	D = {struct, [{"z", 1}, {"f", F}, {"e", E}]},
  	W = {struct, [{"name", "w"}, {"value", erlang:unique_integer()}]},
  	V = {struct, [{"name", "v"}, {"value", erlang:unique_integer()}]},
  	U = {struct, [{"name", "u"}, {"value", erlang:unique_integer()}]},
  	C = {struct, [{"d", D}, {"x", {array, [U, V, 6, W, Y]}}]},
  	B = {struct, [{"s", 5}, {"t", 6}, {"c", C}]},
  	A = {struct, [{"o", 3}, {"p", 4}, {"b", B},
  			{struct, [{"q", 5}, {"r", 6}]}]},
  	ObjectIn = {struct, [{"a", A}, G, {"m", 9}]},
  	Filters = "a.b.c.d.e,g,a.b.c.x.name=(w,v),a.b.c.x.value,a.b.c.d.f",
  	ObjectOut = {struct, [{"a", {struct, [{"b", {struct, [{"c", {struct,
  			[{"d", {struct, [{"e", E}, {"f", F}]}},
  			{"x", {array, [W, V]}}]}}]}}]}}, G]},
  	ObjectOut = ocs_rest:filter(Filters, ObjectIn).
  
  filter_match_list() ->
  
negative.code: %%
  all() ->
  	[filter_members, filter_array, filter_deep_object, filter_deep_array,
  			filter_match, filter_match_array, filter_match_list, filter_complex].
  
  %%---------------------------------------------------------------------
  %%  Test cases
  