def dance_once(puzzle_input, programs):
    """
    Do one full round of the dance according to the puzzle_input.

    Args:
        puzzle_input (list): Formatted as the provided input from the website.
        programs (list): The programs that will dance.
    Returns:
        list: The new order of the programs.
    Examples:
        >>> dance_once(['s1,x3/4,pe/b'], [c for c in 'abcde'])
        ['b', 'a', 'e', 'd', 'c']

    """
    for dance_move in ''.join(puzzle_input).split(','):
        if dance_move.startswith('s'):
            spin = int(dance_move[1:])
            programs = programs[-spin:] + programs[:-spin]
        elif dance_move.startswith('x'):
            a, b = map(int, dance_move[1:].split('/'))
            programs[a], programs[b] = programs[b], programs[a]
        elif dance_move.startswith('p'):
            a, b = dance_move[1:].split('/')
            index_a = programs.index(a)
            index_b = programs.index(b)
            programs[index_a], programs[index_b] = programs[index_b], programs[index_a]
    return programs