Show valid parameter names in the error message when a macro is called with an invalid parameter name
diff --git a/src/main/java/freemarker/core/Environment.java b/src/main/java/freemarker/core/Environment.java
index 13ef380..7338895 100644
--- a/src/main/java/freemarker/core/Environment.java
+++ b/src/main/java/freemarker/core/Environment.java
@@ -1056,7 +1056,8 @@
     private _MiscTemplateException newUndeclaredParamNameException(Macro macro, String argName) {
         return new _MiscTemplateException(this,
                 (macro.isFunction() ? "Function " : "Macro "), new _DelayedJQuote(macro.getName()),
-                " has no parameter with name ", new _DelayedJQuote(argName), ".");
+                " has no parameter with name ", new _DelayedJQuote(argName), ". Valid parameter names are: "
+                , new _DelayedJoinWithComma(macro.getArgumentNames()));
     }
 
     private _MiscTemplateException newBothNamedAndPositionalCatchAllParamsException(Macro macro) {