Pacman clone bug: can't move pacman with arrow keys

I have pasted my PacmanMove script below. Can someone tell me why I can’t move my pacman around even when I press the arrow keys? Thank you!

public float speed = 0.4f;
Vector2 dest = Vector2.zero;

// Use this for initialization
void Start () {
	dest = transform.position; 
}

// Update is called once per frame
void FixedUpdate () {
//Move closer to destination
	Vector2 p = Vector2.MoveTowards(transform.position, dest, speed);
	GetComponent<Rigidbody2D> ().MovePosition (p);

	if ((Vector2)transform.position == dest) {
		if (Input.GetKey (KeyCode.UpArrow) && valid (Vector2.up)) {
			dest = (Vector2)transform.position + Vector2.up;
		}
		if (Input.GetKey (KeyCode.RightArrow) && valid (Vector2.right)) {
			dest = (Vector2)transform.position + Vector2.right;			
		}
		if (Input.GetKey (KeyCode.DownArrow) && valid (-Vector2.up)) {
			dest = (Vector2)transform.position - Vector2.up;			
		}
		if (Input.GetKey (KeyCode.LeftArrow) && valid (-Vector2.right)) {
			dest = (Vector2)transform.position - Vector2.right;			
		}
	}
}

bool valid(Vector2 dir){
//Cast line from 'next to pacman' to 'pacman'
	Vector2 pos = transform.position;
	RaycastHit2D hit = Physics2D.Linecast (pos + dir, pos);
	return (hit.collider == GetComponent<Collider2D>());
}

Try your code without lline 15.