private/Build-IncludeScope.ps1

function Build-IncludeScope {
    param(
        [string[]] $kvArgs,
        [System.Collections.IDictionary] $baseVars
    )

    $scope = [ordered]@{}
    foreach ($key in $baseVars.Keys) {
        $scope[$key] = $baseVars[$key]
    }

    foreach ($kv in $kvArgs) {
        $eqIdx = $kv.IndexOf('=')
        if ($eqIdx -gt 0) {
            $key = $kv.Substring(0, $eqIdx).Trim()
            $val = $kv.Substring($eqIdx + 1)
            if ($val -match '\|') {
                $scope[$key] = @($val.Split('|') | ForEach-Object { $_.Trim() } | Where-Object { $_ -ne "" })
            } else {
                $scope[$key] = $val
            }
        }
    }

    return $scope
}