```ts
/**
 * Checks if a list of hops forms a valid unbroken chain.
 * 
 * @param hops - A list of pairs where each pair is in the format ["start", "end"].
 * @returns true if the hops form a valid unbroken chain, false otherwise.
 */
export function hopChain(hops: string[][]): boolean {
  if (hops.length === 0) return true;

  for (let i = 1; i < hops.length; i++) {
    const [start1, end1] = hops[i - 1];
    const [start2, end2] = hops[i];

    if (end1 !== start2) return false;
  }

  return true;
}
```