public bool IsClumped(Tile tile, Board board, PieceData pieceData)
    {
        List <Tile> adjacentTiles = board.GetAdjacentTiles(tile, false);
        int         clumpSize     = adjacentTiles
                                    .Where(adjacentTile => {
            return(adjacentTile.HasContents && pieceData.Matches(adjacentTile.Contents.GetComponent <MatchPiece>()));
        })
                                    .Select(adjacentTile => MatchingManager.Instance.GetAdjacentMatches(board, adjacentTile, true))
                                    .Aggregate(new List <Tile>(), (acc, list) => acc.Union(list).ToList())
                                    .Distinct()
                                    .Count();

        return(clumpSize >= maximumClump);
    }