* lib/Automake/Variable.pm (_hash_varname, _hash_values): New functions. (_gen_varname): Use _hash_values, and return a flag indicating whether the variable name was generated or reused. (transform_variable_recursively): Do not redefine variables that are reused, and try to reuse the variable being transformed. * tests/check2.test: Make sure TESTS hasn't been redefined. * tests/check5.test, tests/exeext4.test: Make sure variables have been reused. * tests/subst2.test: Make sure bin_PROGRAMS gets rewritten.