Private/Format-Color.ps1

function Format-Color([hashtable] $Colors = @{ }, [switch] $SimpleMatch) {

    $lines = ($input | Out-String) -replace "`r", "" -split "`n"
    foreach ($line in $lines) {
        $color = ''
        foreach ($pattern in $Colors.Keys) {
            if (!$SimpleMatch -and $line -match $pattern) {
                $color = $Colors[$pattern]
                if ($color) {
                    $seg1 = ($line -split $pattern)[0]
                    $seg2 = ($line -split $pattern)[1]
                    Write-Host $seg1 -NoNewLine
                    Write-Host $pattern -ForegroundColor $color -NoNewline
                    Write-Host $seg2
                }
            }

            elseif ($SimpleMatch -and $line -like $pattern) {
                $color = $Colors[$pattern]
                if ($color) {
                    $seg1 = ($line -split $pattern)[0]
                    $seg2 = ($line -split $pattern)[1]
                    Write-Host $seg1 -NoNewLine
                    Write-Host $pattern -ForegroundColor $color -NoNewline
                    Write-Host $seg2
                }
            }
        }
        if (!$color) {
            Write-Host $line
        }
    }
}