[CmdletBinding()]param( [string]$WordToComplete, [string[]]$FullValueSet, [switch]$Strict ) $local:possibleValues = $fullValueSet if( $wordToComplete ) { $possibleValues = $possibleValues | Where-Object { $_ -match $wordToComplete } if( -not $strict -and ($wordToComplete -notin $possibleValues) ) { $possibleValues = $( $wordToComplete; $possibleValues ) } } return $possibleValues