Private/Sort-PSDependency.ps1

function Sort-PSDependency {
    [cmdletbinding()]
    param(
        [object[]]$Dependencies
    )

    $Order = @{}
    Foreach ($Dependency in $Dependencies) {
        if ($Dependency.DependsOn) {
            if (-not $Order.ContainsKey($Dependency.DependencyName)) {
                $Order.add($Dependency.DependencyName, $Dependency.DependsOn)
            }
        }
    }

    if ($Order.Keys.Count -gt 0) {
        $DependencyOrder = Get-TopologicalSort $Order
        Sort-ObjectWithCustomList -InputObject $Dependencies -Property DependencyName -CustomList $DependencyOrder
    }
    else {
        $Dependencies
    }
}