Repository: aws-ia/taskcat
Issue: While executing taskcat test run - Unable to decode value for 'parameters: str'

**Describe the bug**
While executing "taskcat -d test run", i am getting the following error:
```
taskcat -d test run
 _            _             _   
| |_ __ _ ___| | _____ __ _| |_ 
| __/ _` / __| |/ / __/ _` | __|
| || (_| \\__ \\   < (_| (_| | |_ 
 \\__\\__,_|___/_|\\_\\___\\__,_|\\__|
                                


version 0.9.8
/home/ubuntu/.local/lib/python3.6/site-packages/dataclasses_jsonschema/__init__.py:457: UserWarning: Unable to decode value for 'parameters: str'
  warnings.warn(f"Unable to decode value for '{field}: {field_type_name}'")
[INFO   ] : Lint passed for test mytest on template /home/ubuntu/taskcatrun/Create_ALB.template
[S3: -> ] s3://tcat-taskcat-poc-nlsq599i/taskcat-poc/Create_ALB.template
[ERROR  ] : TypeError expected string or bytes-like object
Traceback (most recent call last):
  File "/home/ubuntu/.local/lib/python3.6/site-packages/taskcat/_cli.py", line 70, in main
    cli.run()
  File "/home/ubuntu/.local/lib/python3.6/site-packages/taskcat/_cli_core.py", line 228, in run
    return getattr(command(), subcommand)(**args)
  File "/home/ubuntu/.local/lib/python3.6/site-packages/taskcat/_cli_modules/test.py", line 75, in run
    parameters = config.get_rendered_parameters(buckets, regions, templates)
  File "/home/ubuntu/.local/lib/python3.6/site-packages/taskcat/_config.py", line 295, in get_rendered_parameters
    region_params, s3bucket.name, region.name, region.client
  File "/home/ubuntu/.local/lib/python3.6/site-packages/taskcat/_template_params.py", line 61, in __init__
    self.transform_parameter()
  File "/home/ubuntu/.local/lib/python3.6/site-packages/taskcat/_template_params.py", line 76, in transform_parameter
    self._regex_replace_param_value(self.RE_GENNUMB, self._gen_rand_num(20))
  File "/home/ubuntu/.local/lib/python3.6/site-packages/taskcat/_template_params.py", line 348, in _regex_replace_param_value
    if self.regxfind(regex_pattern, self.param_value):
  File "/home/ubuntu/.local/lib/python3.6/site-packages/taskcat/_common_utils.py", line 75, in regxfind
    security_group = re_object.search(data_line)
TypeError: expected string or bytes-like object
ubuntu@ubuntu-VirtualBox:~/taskcatrun$ 
```

Content of .taskcat.yml is
```
project:
  name: taskcat-poc
tests:
  mytest:
    template: ./Create_ALB.template
    regions:
    - us-east-1
    parameters: 
      VPCIdnt: 'vpc-4e722d34'
      SubnetsList: 
        - 'subnet-09c2c16e'
        - 'subnet-774c9f3a'
      HealthChkPath: '/wordpress/wp-admin/install.php'
      Protocol: 'HTTP'
      PortNumber: 80
```
Please let me know, if any fix i have to make here.
taskcat version used is 0.9.8
ubuntu 18.04

_@andrew-glenn edit: Encasing traceback and config file in code blocks_

Changed files:
taskcat/_template_params.py, tests/test_template_params.py

diff --git a/taskcat/_template_params.py b/taskcat/_template_params.py
index 8771b69..eb1581d 100644
--- a/taskcat/_template_params.py
+++ b/taskcat/_template_params.py
@@ -65,6 +65,25 @@ class ParamGen:
         # - $[taskcat_gets3contents]
         # - $[taskcat_geturl]
         for param_name, param_value in self._param_dict.items():
+            if isinstance(param_value, list):
+                _results_list = []
+                _nested_param_dict = {}
+                for idx, value in enumerate(param_value):
+                    _nested_param_dict[idx] = value
+                nested_pg = ParamGen(
+                    _nested_param_dict,
+                    self.bucket_name,
+                    self.region,
+                    self._boto_client,
+                    self.az_excludes,
+                )
+                nested_pg.transform_parameter()
+                for result_value in nested_pg.results.values():
+                    _results_list.append(result_value)
+                self.param_value = _results_list
+                self.results.update({param_name: _results_list})
+                continue
+
             # Setting the instance variables to reflect key/value pair we're working on.
             self.param_name = param_name
             self.param_value = param_value
diff --git a/tests/test_template_params.py b/tests/test_template_params.py
index 4856231..cf87adb 100644
--- a/tests/test_template_params.py
+++ b/tests/test_template_params.py
@@ -449,3 +449,25 @@ class TestParamGen(unittest.TestCase):
             for _param_key, param_value in pg.results.items():
                 if _param_key == "SingleAZ":
                     self.assertEqual(param_value, "us-east-1b")
+
+    def test_list_as_param_value(self):
+        input_params = {
+            "ExampleList": [
+                "$[taskcat_getsingleaz_1]",
+                "$[taskcat_getsingleaz_2]",
+                "foobar",
+            ],
+            "ExampleString": "$[taskcat_getsingleaz_1]",
+        }
+        bclient = MockClient
+        bclient.logger = logger
+        class_kwargs = self.class_kwargs
+        class_kwargs["param_dict"] = input_params
+        class_kwargs["boto_client"] = bclient
+        pg = ParamGen(**class_kwargs)
+        pg.transform_parameter()
+        expected_result = {
+            "ExampleList": ["us-east-1a", "us-east-1b", "foobar"],
+            "ExampleString": "us-east-1a",
+        }
+        self.assertEqual(pg.results, expected_result)